<?php

include "../tablas/producto.php";
include "../tablas/util.php";

$action = $_POST["action"];
if (isset($action) && $action != "") {
    $resultado = array();
    switch ($action) { //Switch case for value of action
        case "insertar_productos"://inserta usuarios 
            $resultado = insertar_productos($_POST);
            break;
        case "mostrarProductos":
            $resultado = mostrarProductos($_POST);
            break;
        case "mostrarProductosAgotados":
            $resultado = mostrarProductosAgotados($_POST);
            break;

        case "mostrarReporteProductoVentas":
            $resultado = mostrarReporteProductoVentas($_POST);
            break;

        case "AjaxjaxlistProductos":
            $resultado = AjaxjaxlistProductos($_POST);
            break;
        case "mostrarRankingReporteProductosColumnVentasUsuarios":
            $resultado = mostrarRankingReporteProductosColumnVentasUsuarios($_POST);
            break;
        case "mostrarReporteProductosColumnVentas":
            $resultado = mostrarRankingReporteProductosColumnVentas($_POST);
            break;
    }
    echo json_encode($resultado);
}

//generateRankingReporteProductosColumnVentas
function mostrarRankingReporteProductosColumnVentas($data) {
//    $formatGroup = "%Y/%m/%d";

    $fechas = $data['fechas'] && $data['fechas'] != "" ? $data['fechas'] : null;
    $n = explode('/', $fechas);
    $fecha_inicio = util::FormatDate($n[0], "Y/m/d 00:00:00");
    $fecha_fin = util::FormatDate($n[1], "Y/m/d 23:59:59");
    $formatGroup = util::interval_date($fecha_inicio, $fecha_fin);
    $producto_id = $data['producto_id'] && $data['producto_id'] != "" ? $data['producto_id'] : null;
//    var_dump($producto_id);
    $productosVentas = producto::generateRankingReporteProductosColumnVentas($fecha_inicio, $fecha_fin, $formatGroup, $producto_id);
    return $productosVentas;
}

function mostrarRankingReporteProductosColumnVentasUsuarios($data) {
//    $formatGroup = "%Y/%m/%d";
    $productosVentas = array();
    $usuario_nombre = $data['usuario_nombre'];
    if ($data['usuario_nombre'] != "") {
        $fechas = $data['fechas'] && $data['fechas'] != "" ? $data['fechas'] : null;
        $n = explode('/', $fechas);
        $fecha_inicio = util::FormatDate($n[0], "Y/m/d 00:00:00");
        $fecha_fin = util::FormatDate($n[1], "Y/m/d 23:59:59");
        $formatGroup = util::interval_date($fecha_inicio, $fecha_fin);
        $producto_id = $data['producto_id'] && $data['producto_id'] != "" ? $data['producto_id'] : null;
        $productosVentas = producto::generateRankingReporteProductosColumnVentasUsuarios($fecha_inicio, $fecha_fin, $formatGroup, $usuario_nombre, $producto_id);
    } else {
        $productosVentas = array('mostrar' => false);
    }
    return $productosVentas;
}

//generateRankingReporteProductosColumnVentas
function mostrarProductos($data) {

    $productos = producto::getProductos($data);

    return $productos;
}

/**
 * Agrega los usuarios a registrar
 * @param type= arreglo que viene del post ,$data  y la posicion de acuerdo al formulario
 * @return type
 */
function insertar_productos($data) {
    $datosGuardar = $data['Productos']; //esto viene dl formulario dond l pusiste for="Usuarios_usuario_nombre"
//    y solo l cojo la posicion padre  (Usuarios) _usuario_nombre
    $errores = producto::getMsjCamposObligatorios($datosGuardar, true);
    if (!$errores["success"]) {
        return $errores;
    } else {
        $errores["success"] = producto::setInsertar($datosGuardar);
    }
    return $errores;
}

function actualizar_productos($data) {
    $datosGuardar = $data['Productos']; //esto viene dl formulario dond l pusiste for="Usuarios_usuario_nombre"
//    y solo l cojo la posicion padre  (Usuarios) _usuario_nombre
    $errores = producto::getMsjCamposObligatorios($datosGuardar, true);
    if (!$errores["success"]) {
        return $errores;
    } else {
        $errores["success"] = producto::setActualizar($datosGuardar);
    }
    return $errores;
}

function eliminar_productos($data) {
    $datosGuardar = $data['Productos']; //esto viene dl formulario dond l pusiste for="Usuarios_usuario_nombre"
//    y solo l cojo la posicion padre  (Usuarios) _usuario_nombre
    $errores = producto::getMsjCamposObligatorios($datosGuardar, true);
    if (!$errores["success"]) {
        return $errores;
    } else {
        $errores["success"] = producto::setEliminar($datosGuardar);
    }
    return $errores;
}

function AjaxjaxlistProductos($data) {
    $search_value = $data['search_value'];
    $datos_clientes = producto::getListSelect2($search_value);

    return $datos_clientes;
}

/**
 * Reportes
 */
function mostrarProductosAgotados($data) {

    $productosAgotados = producto::getProductosAgotados($data);

    return $productosAgotados;
}

function mostrarReporteProductoVentas($data) {
    $fecha_inicio = null;
    $fecha_fin = null;
    $fechas = $data['fechas'];
    if ($fechas) {
        $n = explode('/', $fechas);
        $fecha_inicio = Util::FormatDate($n[0], "Y-m-d 00:00:00");
        $fecha_fin = Util::FormatDate($n[1], "Y-m-d 23:59:59");
        $formatGroup = Util::interval_date($fecha_inicio, $fecha_fin);
    }

    $reporteData = producto::generateRankingReporteProductosColumn($fecha_inicio, $fecha_fin, $formatGroup);
    echo CJSON::encode($reporteData);
}
